package common.model.Entity.StoreEntity;

import common.model.Entity.BaseEntity;
import lombok.Getter;
import lombok.Setter;

/**
 * 订单项实体类，表示订单中的单个商品项。
 * 每个订单项关联一个商品，并包含该商品的数量和价格信息。
 */
@Getter
@Setter
public class OrderItem extends BaseEntity {
    /**
     * 订单ID，外键关联到订单表
     */
    private long orderId;

    /**
     * 商品ID，外键关联到商品表
     */
    private long productId;

    /**
     * 商品数量
     */
    private int quantity;

    /**
     * 商品单价
     */
    private double price;

    /**
     * 默认构造函数
     */
    public OrderItem(){};

    /**
     * 带参数的构造函数，用于创建完整的订单项对象
     *
     * @param id 订单项ID
     * @param order_id 订单ID
     * @param product_id 商品ID
     * @param quantity 商品数量
     * @param price 商品单价
     */
    public OrderItem(long id, long order_id, long product_id, int quantity, double price) {
        super(id);
        this.orderId = order_id;
        this.productId = product_id;
        this.quantity = quantity;
        this.price = price;
    }
}